Pipeline, May/June 1995, vol.6, no.3
Copyright © 1995 Silicon Graphics
This article provides an overview of the changes from X11 Release 5 (provided with IRIX 5.1 and IRIX 5.2), and X11 Release 6 (provided with IRIX 5.3, IRIX 6.0, and IRIX 6.0.1). The information provided in this article was largely obtained from the "X Window System, Version 11, Release 6 Release Notes" from the X Consortium, May 16, 1994.
The following sections will briefly describe how SGI has implemented (or not implemented) the new X Consortium standards in X11R6.
Compatibility
X11R6 libraries, protocols and servers are upward compatible with X11R5. All X11R5 clients and applications should continue to work with X11R6 libraries and servers.
X server
IRIX 5.3 and IRIX 6.0.x continue to support the SGI X server based on X11R5 shipped with IRIX 5.2. Extensions supported only on the client side, such as SYNC, XC-MISC, and BIG-REQUESTS are not supported by the SGI X server in IRIX 5.3 or IRIX 6.0.x. They can only be used if the client connects to an X11R6 server that supports these extensions (i.e., a non-SGI server). It is expected that these extensions will be fully supported in a later release of IRIX when the X server will also be X11R6 based.
Support for XIE (X Image Extension) is not provided, nor are there any plans to support this in the future.
The X Keyboard extension (XKB) and XTEST are supported by IRIX 5.3 and IRIX 6.0.x.
Fonts and the Font Server
MIT has included some new fonts in X11R6, and has moved some existing fonts to other locations. IRIX 5.3 and IRIX 6.0.x continue to ship the same fonts as IRIX 5.2. Customers interested in running XView/Open Look applications or using obscure fonts are reminded that these fonts are not installed by default but can be found in the subsystem x_eoe.sw.Xoptfonts.
Because of a naming problem, MIT has renamed the font server from fs to xfs. In addition, X11R6 changed the default TCP port for the X font server from 7000 to 7100. X terminals or other X servers getting font service from an SGI system should be updated to use the new port number. Refer to the xfs(1) manual page for more details. Note that MIT's change from fs to xfs has now created a naming conflict for SGI because of the XFS file system, xfs(4).
Although IRIX 5.3 and IRIX 6.0.x use the new font library for the font server and the font tools, the X server continues to use the X11R5 font library because the X server has not yet been updated for X11R6.
IRIX 5.2 (and above) and IRIX 6.0.x support the Type1 rasterizer. Refer to the type1xfonts(1) manual page for more information. Note that the command type1xfonts is SGI specific and not part of X11 Release 6.
Internationalization
Internationalization of the X Window System, first introduced in X11R5, has been significantly improved in X11R6. The X11R6 I18N architecture is similar to that in X11R5 (based on the locale model used in ANSCI C and POSIX), with most of the I18N capability provided by Xlib (libX11).
X11R6 contains new Xlib interfaces to support additional language support and more practical localization. This additional support is predominately in the area of text display. In order to support multi-byte encoding, the concept of a FontSet was introduced in X11R5. In X11R6, Xlib expands upon this concept to a more generalized notion of output methods and output context.
Input Method Protocol
Some languages need complex input methods. The Input Method (IM) Server provides an application independent implementation of input methods. The IM Server handles the display of text and the user's input operation. The IM Protocol is a completely new protocol, based on experience gained from X11R5 implementations.
IRIX 5.3 and IRIX 6.0.x both support various input methods. In keeping with the I18N and IM changes, the format of Xlib's X Locale database has been changed for X11R6. The X11R6 version of Xlib only understands the new X Locale database. Since Xlib was only shipped as a dynamic shared object (.so) in previous releases of IRIX, the X11R5 Locale database is no longer being shipped. The old X11R5 X Locale database resided in /usr/lib/X11/nls. The new location for the X11R6 X Locale database is /usr/lib/X11/locale.
Inter-Client Exchange
Inter-Client Exchange (ICE) provides a common framework for building protocols. It supplies authentication, byte order negotiation, version negotiation, and error reporting conventions. It supports multiplexing multiple protocols over a single transport connection.
ICE is supported through libXt in IRIX 5.3 and IRIX 6.0.x. There is no separate libICE library. A symbolic link makes /usr/lib/libICE.so and /usr/lib/libICE.a point to /usr/lib/libXt.so and /usr/lib/libXt.a respectively.
The program iceauth(1), which is used to manipulate an ICE authority file, is supplied in IRIX 5.3 and IRIX 6.0.x. It is very similar to the xauth(1) program.
No SGI supplied applications currently used ICE (beyond iceauth).
Session Management
The X Session Management Protocol (XSMP) provides a uniform mechanism for users to save and restore their sessions using the services of a network-based session manager.
Session Management (SM) is supported through libXt in IRIX 5.3 and IRIX 6.0.x. There is no separate libSM library to link with. A symbolic link makes /usr/lib/libSM.so and /usr/lib/libSM.a point to /usr/lib/libXt.so and /usr/lib/libXt.a respectively.
The simple session manager, xsm is not supplied with IRIX 5.3 or IRIX 6.0. The Indigo Magic desktop does not support SM-style session management.
X Logical Font Description
Although no support for the new enhanced X Logical Font Description (XLFD) features is provided in the X server, the font server supplied with IRIX 5.3 and IRIX 6.0.x does provide support for XLFD.
Configuration Files
IRIX 5.3 and IRIX 6.0.x users of Imakefiles should be aware that the configuration files have changed between X11R5 and X11R6. This means that some users will have problems with some Imakefiles. Most problems with Makefiles can be resolved by executing the command:
% make Makefile; make MakefilesThis will rebuild the Makefiles from the current configuration files. Using xmkmf(1) is the best way to regenerate a new Makefile from scratch. The -64 and -32 options are supported by xmkmf to control if a Makefile for building 64-bit or 32-bit binaries will be generated.
Kerberos
Kerberos is an authorization scheme for X clients written by Massachussets Institute of Technology (MIT). At this time, IRIX 5.3 and IRIX 6.0.x do not provide support for Kerberos.
Xlib
IRIX 5.3 and IRIX 6.0.x do not support the new multithreaded access to a single display connection supplied by MIT in X11R6 Xlib. SGI customers who need multithreaded use of X should use a separate X connection for each thread.
X11R6 added two new functions XInternAtoms(3X11) and XGetAtomNames(3X11) which reduce what would otherwise require multiple round trips to the server to a single round trip. SGI actually provided (undocumented) support for XInternAtoms and XGetAtomNames beginning with IRIX 5.2 but these calls are officially supported in IRIX 5.3 and IRIX 6.0.x.
Xt
Many bug fixes and enhancements have been made by MIT to Xt in X11R6. As stated previously, SGI has included client level support for ICE and SM in libXt.
The SGI Xt implementation continues to support "schemes" allowing better customization of colors and fonts. There are no changes from the level of support provided in IRIX 5.2.
Xaw
Some minor bug fixes and enhancements have been made by MIT to the Athena Widget library (libXaw) in X11R6.
Because of these changes, the X11R6 version of Xaw cannot be made fully compatible with the X11R5 version (the widget structures have been expanded in a way that would break programs which derive widgets from existing Athena widgets). Under IRIX 5.3 and IRIX 6.0.x, the old X11R5 libXaw.so is shipped as /usr/lib/libXaw.so.1, and the new X11R6 libXaw.so is shipped as /usr/lib/libXaw.so.2, with a symbolic link from /usr/lib/libXaw.so pointing to libXaw.so.2.
PEX
IRIX 5.3 and IRIX 6.0.x provide a client-side implementation of PEX 5.1 (libPEX5) and supports the immediate rendering and structure store subsets (but not the workstation subset) of the X Consortium PEX 5.1 protocol. In addition, the IRIX 5.3 and IRIX 6.0.x PEX implementation also supports Digital Equipment Corporation's MPEX line anti-aliasing. The SGI X server supports a dynamically loadable PEX 5.1 extension that renders via OpenGL (the subsystem x_eoe.sw.pex must be loaded). In addition, the subsystem x_dev.sw.pex on the IDO CD-ROM (IRIX Developer's Option) includes headers and library archives for PEXlib 5.1 for developers desiring to write PEX programs.
SGI does not use the X Consortium PEX sample implementation to implement PEX in IRIX. No support is provided for the PHIGS API, and no PEX demo programs are supplied.
twm
IRIX 5.3 and IRIX 6.0.x support an X11R6 version of twm(1) that has been further enhanced with internationalization features from the IRIX 5.2 version of twm.
xdm
IRIX 5.3 and IRIX 6.0.x continue to support the SGI enhanced X11R5-based xdm(1) supplied with IRIX 5.2. It is expected that a later release will upgrade xdm to X11R6.
References
"X Window System, Version 11, Release 6 Release Notes" from the X Consortium, May 16, 1994.
"X 11 Release 5" in the September/October 1993 issue of Pipeline (Volume 4, Number 5), available on-line with Support Advantage.
Each subsystem in IRIX has its own associated release notes. For more information regarding X11R6, use the command relnotes(1) or grelnotes(1) to view the release notes for the x_eoe and x_dev subsystems.